package concurrent;

/**
 * 守护线程是一种特殊的线程，在后台默默地完成一些系统性的服务，比如垃圾回收线程、JIT线程都是守护线程。
 * 与之对应的是用户线程，用户线程可以理解为是系统的工作线程，它会完成这个程序需要完成的业务操作。
 * 如果用户线程全部结束了，意味着程序需要完成的业务操作已经结束了，系统可以退出了。
 * 所以当系统只剩下守护进程的时候，java虚拟机会自动退出。
 * 线程的daemon属性为true表示是守护线程
 *
 * @author jack.wu
 * @since 2019/12/25 16:55
 */
public class DaemonDemo {

    public static class T1 extends Thread {

        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName() + "开始执行");
            System.out.println(this.isDaemon() ? "守护线程" : "用户线程");
        }
    }

    public static void main(String[] args) {
        T1 t1 = new T1();
        t1.setDaemon(true);
        t1.start();

    }

}

